// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Золотой дар Мидаса покорите слот и сорвите куш в olimp casino с щедрыми ретриггерами и множителями! – копія – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Золотой дар Мидаса: покорите слот и сорвите куш в olimp casino с щедрыми ретриггерами и множителями!

Добро пожаловать в мир азартных развлечений, где каждый спин может принести невероятные эмоции и солидные выигрыши! Сегодня мы погрузимся в захватывающий мир слотов, а точнее, рассмотрим один из самых популярных и щедрых – слот, вдохновленный легендами Древней Греции и золотым прикосновением царя Мидаса. В olimp casino этот слот пользуется особой популярностью благодаря своей динамичной игровой механике, прилипающим символам и возможности получения множества бесплатных вращений с увеличивающимися множителями. Этот слот обещает не только увлекательный геймплей, но и реальный шанс на крупный выигрыш.

В этой статье мы подробно разберем все аспекты этого слота – от его технических характеристик и бонусных функций до стратегий игры и советов, которые помогут вам увеличить свои шансы на успех в olimp casino. Мы расскажем о символах, выплатах, особенностях фриспинов и секретах, которые помогут вам раскрыть весь потенциал этого захватывающего слота.

Загадочный мир Мидаса: знакомство со слотом

Слот, посвященный царю Мидасу, – это настоящее произведение искусства, сочетающее в себе великолепный дизайн, захватывающую атмосферу и инновационные игровые функции. Графика слота выполнена на высоком уровне, передавая атмосферу древнегреческого замка, наполненного золотом и тайнами. Музыкальное сопровождение создает напряженную и захватывающую обстановку, а звуковые эффекты подчеркивают каждое действие в игре. Игровой процесс отличается динамичностью и непредсказуемостью, предлагая игрокам постоянный поток эмоций и возможность получить крупный выигрыш.

Основные символы и их значения

В слоте царя Мидаса представлен широкий выбор символов, каждый из которых обладает своим значением и коэффициентом выплат. Основными символами являются изображения различных артефактов Древней Греции, таких как амфоры, золотые монеты, греческие колонны и, конечно же, сам царь Мидас. Особое внимание следует уделить специальным символам – Wild и Scatter. Wild-символ заменяет другие символы в игре, увеличивая шансы на формирование выигрышной комбинации. Scatter-символ активирует бонусную игру с бесплатными вращениями, где можно получить значительные выигрыши.

Символ Коэффициент выплат (x)
Амфора 5 – 250
Золотая монета 10 – 500
Греческая колонна 15 – 750
Царь Мидас 20 – 1000
Wild 25 – 1250
Scatter 2 – 50

Бонусные функции и фриспины

Одной из самых захватывающих особенностей слота царя Мидаса является бонусная игра с бесплатными вращениями. Эта функция активируется при выпадении определенного количества Scatter-символов на игровом поле. Во время фриспинов в игре появляется специальный символ – прилипающая золотая рука, которая остается на барабанах до конца бонусной игры и может открыть гарантированный рост общего несгораемого множителя. Каждый раз, когда прилипающая рука появляется на барабанах, множитель увеличивается, что значительно повышает шансы на получение крупного выигрыша. Слот известен своими непредсказуемыми «заносами» космических масштабов, гарантирующими бесконечные ретриггеры, пока минимальная планка выигрыша не будет пробита.

  • Прилипающие символы: Золотые руки остаются на барабанах до конца раунда фриспинов.
  • Увеличение множителя: Каждый прилипающий символ увеличивает общий множитель выигрыша.
  • Ретриггеры: Возможность повторного запуска фриспинов при выпадении дополнительных Scatter-символов.

Стратегии игры и советы

Чтобы увеличить свои шансы на успех в слоте царя Мидаса, важно разработать грамотную стратегию игры. Начните с небольших ставок, чтобы ознакомиться с игрой и понять ее особенности. Постепенно увеличивайте ставки, если вы уверены в своей стратегии и наблюдаете положительные результаты. Обращайте внимание на бонусные функции и фриспины, так как они могут принести значительные выигрыши. Не забывайте о лимите ставок и не играйте на деньги, которые вы не можете позволить себе проиграть. Помните, что слот – это игра случая, и нет гарантии выигрыша.

  1. Управление банкроллом: Определите бюджет и придерживайтесь его.
  2. Начните с малых ставок: Изучите игровой процесс без больших рисков.
  3. Используйте бонусные функции: Фриспины и множители могут значительно увеличить выигрыш.
  4. Играйте ответственно: Не играйте на последние деньги.

Особенности слота в olimp casino

В olimp casino слот царя Мидаса представлен в удобном и интуитивно понятном формате. Игроки могут наслаждаться игрой как на компьютерах, так и на мобильных устройствах. Olimp casino предлагает различные бонусы и акции, которые могут увеличить ваши шансы на выигрыш. Служба поддержки olimp casino всегда готова помочь вам с любыми вопросами, связанными с игрой. Благодаря высокой надежности и безопасности, olimp casino является отличным местом для любителей азартных развлечений.

Функция Описание
Мобильная версия Доступность игры на смартфонах и планшетах.
Бонусы и акции Регулярные предложения для игроков.
Служба поддержки Оперативная помощь в решении любых вопросов.
Безопасность Надежная защита личных данных и финансовых транзакций.

В заключение, слот, вдохновленный царем Мидасом, – это захватывающая и щедрая игра, которая подарит вам массу положительных эмоций и возможность сорвать крупный куш. Благодаря своей динамичной игровой механике, прилипающим символам и возможности получения множества бесплатных вращений с увеличивающимися множителями, этот слот станет настоящим фаворитом среди любителей азартных развлечений. Не упустите шанс испытать свою удачу и окунуться в мир золота и богатства в olimp casino!

Design and Develop by Ovatheme